//
//  CZStatusViewModel.swift
//  05.08--weibo
//
//  Created by fennyYang on 16/5/20.
//  Copyright © 2016年 a. All rights reserved.
//

import UIKit

class CZStatusViewModel: NSObject
{
     // 单例
     static let sharedInstance: CZStatusViewModel = CZStatusViewModel()

     // 私有构造函数
     private override init()
     {
          super.init()
     }

     // 加载微博数据
     func loadStatus(loadStatusCallback: (statuses: [CZStaus]?, error: NSError?) -> ())
     {
          guard let access_token = CZUserAccountViewModel.sharedInstance.userAccount?.access_token else
          {
               CZPrint(items: "access_token没有值，不去请求微博数据")
               return
          }

          // urlString 
          let urlString = "2/statuses/home_timeline.json"

          // 参数
          let parameters =
          [
               "access_token": access_token
          ]

          // 请求
          CZNetworkTool.sharedInstance.request(RequestMethod.GET, URLString: urlString, parameters: parameters, success:
               { (_, responseObject) -> Void in

                    if let result = responseObject as? [String: AnyObject]
                    {
                         // 返回的数据是字典

                         // 获取到所有的微博数据
                         if let statuses = result["statuses"] as? [[String: AnyObject]]
                         {
                         // 定义空数组存放转好的微博模型
                         var statusArray = [CZStaus]()

                         // 遍历数组，取出每一个微博字典[String: AnyObject]
                         for dic in statuses
                         {
                              // 字典转模型
                              let statusModel = CZStaus(dic: dic)

                              // 将模型添加到数组中
                              statusArray.append(statusModel)
                         }

//                         CZPrint(items: "微博模型数组: \(statusArray)")
                              // 将微博数据告诉homeViewController(调用的人
                              loadStatusCallback(statuses:statusArray, error: nil)

                    }
                    }
                  })
                    { (_, error) -> Void in

//                         CZPrint(items: "获取微博数据失败了: \(error)")
                         loadStatusCallback(statuses: nil, error: error)

                    }
          }


}


































































